Lincheck: A Practical Framework for Testing Concurrent Data Structures on JVM

نویسندگان

چکیده

Abstract This paper presents , a new practical and user-friendly framework for testing concurrent algorithms on the Java Virtual Machine (JVM). provides simple declarative way to write tests: instead of describing how perform test, users specify what test by declaring all operations examine; automatically handles rest. As result, tests written with are concise easy understand. The generates set scenarios, examines them using stress-testing or bounded model checking, verifies that results each invocation correct. Notably, if an error is detected via easy-to-follow trace reproduce it, significantly simplifying bug investigation. To best our knowledge, first production-ready tool JVM offers such writing tests, without requiring special skills expertise. We successfully integrated in development process several large projects, as Kotlin Coroutines, identified bugs popular concurrency libraries, race Java’s standard liveliness framework, which used most synchronization primitives. believe can improve quality productivity research become state-of-the-art checking their correctness.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Concurrent Data Structures

Sun Microsystems Laboratories 1.1 Designing Concurrent Data Structures . . . . . . . . . . . . . 1-1 Performance • Blocking Techniques • Nonblocking Techniques • Complexity Measures • Correctness • Verification Techniques • Tools of the Trade 1.2 Shared Counters and Fetch-and-φ Structures . . . . . 1-12 1.3 Stacks and Queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

متن کامل

SeSFJava: A Framework for Design and Testing of Concurrent Systems

Many elegant formalisms have been developed for specifying and reasoning about concurrent systems. However, these formalisms have not been widely used by developers and programmers of concurrent systems. One reason is that most formal methods involve techniques and tools not familiar to programmers, for example, a specification language very different from C, C++, or Java. SeSF is a framework f...

متن کامل

Concurrent Data Structures for Efficient Streaming Aggregation

In this paper, we study the problem of streaming multiway aggregation, where large data volumes are received from multiple input streams. Multiway aggregation is a fundamental computational component in data stream management systems, requiring lowlatency and high throughput solutions. We focus on the problem of designing concurrent data structures for achieving low-latency and high throughput ...

متن کامل

Concurrent Data Structures for Hypercube Machine

To efficiully implemenl puallel al,orilhml on

متن کامل

Memory Management for Concurrent Data Structures on Hardware Transactional Memory

Similar to fine-grained locking, and lock-free programming, memory management poses challenges to programming systems with hardware transactional memory (HTM). Thus, scalable data structures need to integrate a memory management scheme, such as hazard pointers, repeated offender, reference counting, and StackTrack. In this paper, we revisit epochs, another popular memory management technique, a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Lecture Notes in Computer Science

سال: 2023

ISSN: ['1611-3349', '0302-9743']

DOI: https://doi.org/10.1007/978-3-031-37706-8_8